'use strict';	//严格模式
// 学生管理的控制器文件：增删改查 等操作

const xtpl = require('xtpl');	// 模板引擎
const path = require('path');
const moment = require('moment');	// 转换时间格式的模块
const fs = require('fs');

const db = require('../configs/database.js');

// 加载基础控制器
const baseCtr = require('./baseController.js');

// 学生添加页面
module.exports.subjectAdd = function(req,res){


		xtpl.renderFile(
			path.join(__dirname,'../views/admin/subject_add.html'),	// 加载视图文件
			{
				page:'subAdd',	// 页面名称
			},  // 第2个参数（主要是用于传给视图的）
			function(err,content){
				// 设置输出的内容类型 html
				res.setHeader('Content-Type','text/html;charset=utf-8');
				res.send(content);
			}
		)

}

// 学生添加操作
module.exports.subjectAddData = function(req,res){
	var where = `sub_name='${req.body.sub_name}' `;
	db.table('subject').field('sub_id').where(where).find().then(function(result){
		if(JSON.stringify(result)=='{}'){
			var data = {
				sub_name:req.body.sub_name,
				sub_score:req.body.sub_score,
			}
			db.table('subject').add(data).then(function(){
				console.log('添加成功')
				// 跳转到列表页
				res.redirect('/admin/subject/subject_list');  // redirect 重定向，跳转
			}).catch(function(err){
				//err为具体的错误信息
				console.log(err)	// 命令行显示(方便调试)
			})
		}else{
			baseCtr.sendMsg('该课程已存在',res);
		}

		// res.end();	// 结束程序，跳转不能加这个
	}).catch(function(err){
		//err为具体的错误信息
		console.log(err)	// 命令行显示(方便调试)
	})
}

// 学生列表
module.exports.subjectList = function(req,res){
	var pn = req.query.pn!=undefined?req.query.pn:1;	
	var limit = 2;
	var start = (pn-1)*limit;

	db.table('subject').limit(start,limit).select().then(function(data){
		// 总记录的查询
		db.table('subject').count('sub_id').then(function(total){	// total 总计
			
			var endPn = Math.ceil(total/limit);
			// 用数组存储页码  [1,2,3]
			var pageArr = [];
			for(var i=1; i<=endPn; i++){
				pageArr.push(i);
			}
			xtpl.renderFile(
				path.join(__dirname,'../views/admin/subject_list.html'),
				{
					page:'subList',	// 页面名称
					subList:data,
					pageArr:pageArr,
					start:parseInt(start),
					pn:parseInt(pn),	// 是url的参数值，是字符串，要转成整型
					endPn: endPn
				},
				function(err,content){
					// 设置输出的内容类型 html
					res.setHeader('Content-Type','text/html;charset=utf-8');
					res.send(content);
				}
			)
		})
		
	}).catch(function(err){
		//err为具体的错误信息
		console.log(err)	// 命令行显示(方便调试)
	})
	
}

// 学生删除
module.exports.subjectDelete = function(req,res){
	var id = req.params.id;  

		db.table('subject').where({sub_id:id}).delete().then(function(affectRows){
			// 删除成功
			res.redirect('/admin/subject/subject_list');
		});

}
module.exports.subjectDeleteAll = function(req,res){
	console.log(req.body.delStr) //不能接受到数组
	// 接下来就是删除操作
	db.table('student_subject_data').where({sub_id: ['IN', req.body.delStr]}).delete().then(function(affectRows){
		// 删除关系，再删除学生表
		db.table('subject').where({sub_id: ['IN', req.body.delStr]}).delete().then(function(affectRows){
			// 删除成功
			res.redirect('/admin/subject/subject_list');
		});
	});
}

module.exports.subjectEdit = function(req,res){

		
		db.table('subject').where({sub_id:req.params.id}).find().then(function(subData){
			
			xtpl.renderFile(
				path.join(__dirname,'../views/admin/subject_edit.html'),	// 加载视图文件
				{
					page:'subEdit',	// 页面名称
					subData:subData
				}, 
				function(err,content){
					res.setHeader('Content-Type','text/html;charset=utf-8');
					res.send(content);
				}
			)


	}).catch(function(err){
		//err为具体的错误信息
		console.log(err)	// 命令行显示(方便调试)
	})
}

// 学生修改操作
module.exports.subjectEditData = function(req,res){

	var where = `sub_id!='${req.params.id}' and (sub_name='${req.body.sub_name}'`;
	db.table('subject').field('sub_id').where(where).find().then(function(result){
	
		if(JSON.stringify(result)=='{}'){
	
			var data = {
				sub_name:req.body.sub_name,
				sub_score:req.body.sub_score,
			
			}
			db.table('subject').where({sub_id:req.params.id}).update(data).then(function(){
				console.log('修改成功')
				res.redirect('/admin/subject/subject_list');  // redirect 重定向，跳转
			}).catch(function(err){
				//err为具体的错误信息
				console.log(err)	// 命令行显示(方便调试)
			})
		}else{

			baseCtr.sendMsg('该学生已存在',res);
		}

		// res.end();	// 结束程序，跳转不能加这个
	}).catch(function(err){
		//err为具体的错误信息
		console.log(err)	// 命令行显示(方便调试)
	})
}